home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / doors_1 / chksec21.zip / CHECKSEC.DOC next >
Text File  |  1992-05-03  |  9KB  |  222 lines

  1.  
  2.                                                                  
  3.  This program compliments of:                      ╓┴╖           ╓┴╖
  4.                                                  / ║ ║           ║ ║ \
  5.    ╤╕           ╤╕       ╕         ╤╕╤╕╒╕       ┌─┬║┬║┬─┬─┬─┬─┬─┬║┬║┬─┐
  6.    ││           ││      │         │││││       ▀▀▀▀║▀║▀▀▀▀▀▀▀▀▀▀▀║▀║▀▀▀▀
  7.    ││ ╤╕ ╒╕ ╕ ╒ ╞╡ ╤╕ ╕ ╒╡ ╒╤ ╤╕   ╞╡╞╡╘╕          ╨ ╨           ╨ ╨
  8.    ││ │  ╒╡ │││ ││ │  │ ││ ││ ╞╛   ││││ │            FIDO 1:369/2
  9.    ╧╛ ╧  ╘╧ ╘╧╛ ╧╛ ╧  ╘ ╘╧ ╘╡ ╘╛   ╧╛╧╛╘╛          EchoNet 50:5305/2
  10.                             │                       OurNet 65:613/2
  11.      Fort Lauderdale, FL   ╘╛                        WDNet 3090.00
  12.    (305) 523-1717 *HST/DS*
  13.  
  14.  
  15.                                 CheckSec v2.1
  16.                             (c) 1992 by Rich Waugh
  17.  
  18. PROBLEM: I run an adult game to which I do not wish to allow minor user
  19. access. Unfortunately, I have some minor users who have higher access than
  20. some adults. All my security levels, from new user to visiting SysOp to
  21. Paid Access are set up in parallel: one with adult access, the other
  22. without. The way I have it set up, non-adult access always ends in a 0,
  23. while adult access ends with a 5. For example, NEWUSER has menu access
  24. level 10, while NEWUSER-X (adult at the same level) has an access level of
  25. 15. Notice that a simple "if larger than" security level check will not
  26. work for me. I'd like to give access to level 25, but not to level 30. That
  27. is not possible with WildCat!, so I wrote this little utility.
  28.  
  29. CheckSec provides you with several different methods of checking a user's
  30. AGE or SECURITY LEVEL. You can compare his security level or age to levels
  31. you have chosen and entered in a configuration file. If it finds a match,
  32. the program terminates normally with an error level 0. If it does not find
  33. a match, it exits with an error level equal to his security level. You can
  34. trap this error level in a batch file and determine what action to take
  35. depending on the result found. Alternatively, you can tell CheckSec to
  36. simply exit with an error level equal to security level for all users (no
  37. criteria checking) and branch somewhere in your batch file based on that
  38. error level. Whichever setup you choose, you must run CheckSec.Exe in your
  39. door batch file, prior to running the door itself, and trap the error level
  40. result.
  41.  
  42. Remember, DOS checks error levels from highest to lowest, so your batch
  43. files must reflect that (see the example Doorx.Bat files to follow). Also,
  44. DOS supports only 256 error levels (0-255). Keep that in mind when setting
  45. up your menu access levels if you intend to use this program!
  46.  
  47. CheckSec includes all the good CatPatch stuff, like chat, drop to DOS,
  48. timer, monitor detection, customized F Keys, user info, etc; it even
  49. supports locked DTE. CheckSec requires Brun45 in your path.
  50.  
  51.       ╔════════════════════════════════════════════════════════════════╗
  52.       ║  NOTE! The security levels are passed to Door.Sys by the *Menu ║
  53.       ║  Access Level*, NOT the NAME of the security level, and the    ║
  54.       ║  Menu Access Level is what CheckSec checks.                    ║
  55.       ╚════════════════════════════════════════════════════════════════╝
  56.  
  57. Here's what's required: You must make a file named CheckSec.Cfg in the
  58. directory where you will run the program.
  59.  
  60.                     ──────────────────────────────────────
  61.  
  62.                          SETUP #1 (Error Exit ─ no criteria checking)
  63.  
  64. EXAMPLE CheckSec.Cfg
  65.  
  66. DrawBridge BBS                 <── The name of your BBS
  67. Rich                           <── SysOp's first name
  68. Waugh                          <── SysOp's last name
  69. C:\Wc30\Wcwork\Node1\Door.Sys  <── Path to Door.Sys
  70. 19200                          <── Locked DTE rate (or NO)
  71. ERROR LEVEL                    <── Tell CheckSec to simply exit with an
  72.                                    error level equal to user's security
  73.                                    level
  74.  
  75. EXAMPLE DoorX.Bat
  76.  
  77. @Echo Off
  78. CheckSec CheckSec.Cfg
  79. If ErrorLevel 101
  80. Goto END
  81. If ErrorLevel 100
  82. LiveCat Monitor.Cfg Games
  83. Goto END
  84. If ErrorLevel 91
  85. Goto END
  86. If ErrorLevel 90
  87. TimeBank
  88. Goto END
  89. If ErrorLevel 81
  90. Goto END
  91. If ErrorLevel 80
  92. LiveCat Monitor.Cfg Games
  93. Goto END
  94. If ErrorLevel 11
  95. Goto END
  96. If ErrorLevel 10
  97. BobCat
  98. :END
  99.  
  100. Using this example batch file, all users with Security Levels 80 and 100
  101. would be sent to LiveCat; those at level 90 go to the Time Bank; and those
  102. at level 10 are sent to BobCat. All others get sent right back to the
  103. board.
  104.  
  105. Using the ERROR LEVEL option in CheckSec bypasses all the comm routines and
  106. is transparent to both the SysOp and the user.
  107.  
  108.                      ──────────────────────────────────────
  109.  
  110.                          SETUP #2 (Security Level Checking)
  111.  
  112. EXAMPLE CheckSec.Cfg
  113.  
  114. DrawBridge BBS                 <── The name of your BBS
  115. Rich                           <── SysOp's first name
  116. Waugh                          <── SysOp's last name
  117. C:\Wc30\Wcwork\Node1\Door.Sys  <── Path to Door.Sys
  118. 19200                          <── Locked DTE rate (or NO)
  119. SECURITY                       <── If you want to check by Security Level
  120. 25                             ─┐
  121. 35                              │  The various MENU ACCESS LEVELS you want
  122. 45                              │  to allow access to the door. You may enter
  123. 55                              │  up to 100 levels, one per line.
  124. 65                             ─┘
  125.  
  126. EXAMPLE DoorX.Bat
  127.  
  128. @Echo Off
  129. Cd \Doors\TimeBank
  130. CheckSec CheckSec.Cfg
  131. If ErrorLevel 1 Goto END
  132. TimeBank
  133. :END
  134.  
  135. Using this method of set-up, CheckSec will check the user's Security Level
  136. against the various levels you have entered in CheckSec.Cfg. If it finds a
  137. match, CheckSec will exit with error level 0, otherwise it will exit with
  138. an error level equal to the user's security level. This can likewise be
  139. trapped in a batch file.
  140.  
  141. Using the above example files, users at security levels 25, 35, 45, 55 & 65
  142. would get to the Time Bank, all others go back to the board.
  143.  
  144.                     ──────────────────────────────────────
  145.  
  146. Finally, if you don't care about Security Level access, you can configure
  147. CheckSec to check the user's age instead.
  148.  
  149.                         SETUP #3 (Checking User's Age)
  150.  
  151. EXAMPLE CheckSec.Cfg
  152.  
  153. DrawBridge BBS                 <── The name of your BBS
  154. Rich                           <── SysOp's first name
  155. Waugh                          <── SysOp's last name
  156. C:\Wc30\Wcwork\Node1\Door.Sys  <── Path to Door.Sys
  157. NO                             <── Locked DTE rate (or NO)
  158. AGE=21                         <── The minimum age you want to give access to
  159.  
  160. EXAMPLE DoorX.Bat
  161.  
  162. @Echo Off
  163. Cd \Doors\Fantasy
  164. CheckSec CheckSec.Cfg
  165. If ErrorLevel 1 Goto END
  166. Fantasy C:\Wc30\Wcwork\Node1\ /BDrawBridge /D /ORich_Waugh /P50 /M1
  167. :END
  168.  
  169. Here, nobody under the age of 21 gets access to the door. If CheckSec exits
  170. with error level other than 0 (he's a kid!), we skip the door and simply
  171. return him back to the board. That's all there is to it.
  172.  
  173.                     ──────────────────────────────────────
  174.  
  175. CheckSec is distributed as Nobitchware. I'm not charging anything for it,
  176. so you are NOT entitled to bitch about it!!!
  177.  
  178. I, for one, am sick and tired of people who solicit money for the dumb
  179. little doors/utilities we all find so indespensible, so this one's a
  180. freebie. It is fully functional and contains no time bombs. If you find it
  181. handy, give the DrawBridge a call and thank me. If you don't find it
  182. useful, I'll cheerfully refund double your money!
  183.  
  184.                                   Rich Waugh
  185.  
  186.                     ──────────────────────────────────────
  187.  
  188. Acknowledgements: CheckSec was written in Quick Basic 4.5 using Jim
  189.                   Brewer's CatPatch routines modified for WildCat! 3.x;
  190.                   with ASM routine for error level exit by Dave Cleary.
  191.  
  192.                     ──────────────────────────────────────
  193.  
  194. History:
  195.  
  196. Version 2.1: Added the ERROR LEVEL option. Cleaned up code; more cosmetic
  197.              changes.
  198.  
  199. Version 2.0: Another bug fix. The Catpatch routines for setting baud rate
  200.              were incorrect if the cfg file did not specify a locked DTE.
  201.              It should work correctly now for those who have it set to
  202.              "NO".
  203.  
  204. Versions 1.8 - 1.9: Mostly code clean-ups, some cosmetic changes. Not
  205.              released.
  206.  
  207. Version 1.7: Found and squished a bug in the modification of CatPatch which
  208.              was causing dropped carrier - only if the user failed the test
  209.              - maybe I should have left that in! <grin>.
  210.  
  211. Versions 1.4 - 1.6: Mostly code clean-ups, some cosmetic changes.
  212.  
  213. Version 1.3: Added the comm routines so the remote user can see what's
  214.              going on!
  215.  
  216. Version 1.2: Added the age-checking routine.
  217.  
  218. Version 1.1: Cleaned up the code and added some color to the video output.
  219.  
  220. Version 1.0: Original release.
  221.  
  222.